/**
 * Набор правил для склонения русских имён, фамилий и отчеств по падежам.
 *
 * = Описание формата файла
 *
 * Файл содержит 3 группы правил. Это +lastname+, +firstname+ и +middlename+. Каждая группа
 * содержит подгруппы с правилами:
 *
 * * Подгруппа +exceptions+ (её может не быть)
 * * Подгруппа +suffixes+
 *
 * == Правила
 *
 * В свою очередь, каждая подгруппа содержит набор правил. Каждое правило содержит 3 составляющие:
 *
 * * Пол (gender). Допустимые значения: +male+, +female+, +androgynous+
 * * Что заменять (test). Массив суффиксов для замены.
 * * На что заменять (mods). Массив модификаторов. Модификатор может иметь впереди один или
 *    дефис, он означает количество символов, которые нужно будет вырезать из слова.
 *
 * Правила отделяются друг от друга переносом строки для лучшего восприятия.
 *
 * === Из чего состоят суффиксы
 *
 * === Из чего состоят модификаторы
 *
 *   [родительный, дательный, винительный, творительный, предложный]
 *
 * == Как добавить новое правило
 *
 */

Petrovich.rules =

{
  "lastname": {
    "exceptions": [
      {
        "gender": "androgynous",
        "test": [
          "бонч",
          "абдул",
          "белиц",
          "гасан",
          "дюссар",
          "дюмон",
          "книппер",
          "корвин",
          "ван",
          "шолом",
          "тер",
          "призван",
          "мелик",
          "вар"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ],
        "tags": [
          "first_word"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "дюма",
          "тома",
          "дега",
          "люка",
          "ферма",
          "гамарра",
          "петипа",
          "шандра",
          "скаля"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "гусь",
          "ремень",
          "камень",
          "онук",
          "богода",
          "нечипас",
          "долгопалец",
          "маненок",
          "рева",
          "кива"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "вий", "сой", "цой", "хой"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "я"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      }
    ],
    "suffixes": [
      {
        "gender": "female",
        "test": [
          "б", "в", "г", "д", "ж", "з", "й", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ь"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "гава", "орота"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "female",
        "test": [
          "ска", "цка"
        ],
        "mods": [
          "-ой", "-ой", "-ую", "-ой", "-ой"
        ]
      },
      {
        "gender": "female",
        "test": [
          "ая"
        ],
        "mods": [
          "--ой", "--ой", "--ую", "--ой", "--ой"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ская"
        ],
        "mods": [
          "--ой", "--ой", "--ую", "--ой", "--ой"
        ]
      },
      {
        "gender": "female",
        "test": [
          "на"
        ],
        "mods": [
          "-ой", "-ой", "-у", "-ой", "-ой"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "иной"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "уй"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ца"
        ],
        "mods": [
          "-ы", "-е", "-у", "-ей", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "рих"
        ],
        "mods": [
          "а", "у", "а", "ом", "е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ия"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "иа", "аа", "оа", "уа", "ыа", "еа", "юа", "эа"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "их", "ых"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "о", "е", "э", "и", "ы", "у", "ю"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ова", "ева"
        ],
        "mods": [
          "-ой", "-ой", "-у", "-ой", "-ой"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "га", "ка", "ха", "ча", "ща", "жа"
        ],
        "mods": [
          "-и", "-е", "-у", "-ой", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ца"
        ],
        "mods": [
          "-и", "-е", "-у", "-ей", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "а"
        ],
        "mods": [
          "-ы", "-е", "-у", "-ой", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ь"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ия"
        ],
        "mods": [
          "-и", "-и", "-ю", "-ей", "-и"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "я"
        ],
        "mods": [
          "-и", "-е", "-ю", "-ей", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ей"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ян", "ан", "йн"
        ],
        "mods": [
          "а", "у", "а", "ом", "е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ынец", "обец"
        ],
        "mods": [
          "--ца", "--цу", "--ца", "--цем", "--це"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "онец", "овец"
        ],
        "mods": [
          "--ца", "--цу", "--ца", "--цом", "--це"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ай"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "гой", "кой"
        ],
        "mods": [
          "-го", "-му", "-го", "--им", "-м"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ой"
        ],
        "mods": [
          "-го", "-му", "-го", "--ым", "-м"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ах", "ив"
        ],
        "mods": [
          "а", "у", "а", "ом", "е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ший", "щий", "жий", "ний"
        ],
        "mods": [
          "--его", "--ему", "--его", "-м", "--ем"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "кий", "ый"
        ],
        "mods": [
          "--ого", "--ому", "--ого", "-м", "--ом"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ий"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-и"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ок"
        ],
        "mods": [
          "--ка", "--ку", "--ка", "--ком", "--ке"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ец"
        ],
        "mods": [
          "--ца", "--цу", "--ца", "--цом", "--це"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ц", "ч", "ш", "щ"
        ],
        "mods": [
          "а", "у", "а", "ем", "е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "в", "н"
        ],
        "mods": [
          "а", "у", "а", "ым", "е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "б", "г", "д", "ж", "з", "к", "л", "м", "п", "р", "с", "т", "ф", "х"
        ],
        "mods": [
          "а", "у", "а", "ом", "е"
        ]
      }
    ]
  },
  "firstname": {
    "exceptions": [
      {
        "gender": "androgynous",
        "test": [
          "лев"
        ],
        "mods": [
          "--ьва", "--ьву", "--ьва", "--ьвом", "--ьве"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "пётр"
        ],
        "mods": [
          "---етра", "---етру", "---етра", "---етром", "---етре"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "павел"
        ],
        "mods": [
          "--ла", "--лу", "--ла", "--лом", "--ле"
        ]
      },
      {
        "gender": "male",
        "test": [
          "яша"
        ],
        "mods": [
          "-и", "-е", "-у", "-ей", "-е"
        ]
      },
      {
        "gender": "male",
        "test": [
          "шота"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "female",
        "test": [
          "рашель", "нинель", "николь", "габриэль", "даниэль"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      }
    ],
    "suffixes": [
      {
        "gender": "androgynous",
        "test": [
          "е", "ё", "и", "о", "у", "ы", "э", "ю"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "female",
        "test": [
          "б", "в", "г", "д", "ж", "з", "й", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ъ"
        ],
        "mods": [
          ".", ".", ".", ".", "."
        ]
      },
      {
        "gender": "female",
        "test": [
          "ь"
        ],
        "mods": [
          "-и", "-и", ".", "ю", "-и"
        ]
      },
      {
        "gender": "male",
        "test": [
          "ь"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "га", "ка", "ха", "ча", "ща", "жа"
        ],
        "mods": [
          "-и", "-е", "-у", "-ой", "-е"
        ]
      },
      {
        "gender": "female",
        "test": [
          "ша"
        ],
        "mods": [
          "-и", "-е", "-у", "-ей", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "а"
        ],
        "mods": [
          "-ы", "-е", "-у", "-ой", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ия"
        ],
        "mods": [
          "-и", "-и", "-ю", "-ей", "-и"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "я"
        ],
        "mods": [
          "-и", "-е", "-ю", "-ей", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ей"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "ий"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-и"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "й"
        ],
        "mods": [
          "-я", "-ю", "-я", "-ем", "-е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч"
        ],
        "mods": [
          "а", "у", "а", "ом", "е"
        ]
      }
    ]
  },
  "middlename": {
    "suffixes": [
      {
        "gender": "androgynous",
        "test": [
          "ич"
        ],
        "mods": [
          "а", "у", "а", "ем", "е"
        ]
      },
      {
        "gender": "androgynous",
        "test": [
          "на"
        ],
        "mods": [
          "-ы", "-е", "-у", "-ой", "-е"
        ]
      }
    ]
  }
}